package beans;

import daos.TimeDAO;
import daos.UsuarioDAO;
import entitys.Time;
import entitys.Usuario;
import java.util.List;
import java.util.Locale;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import org.apache.tomcat.util.http.HttpMessages;

/**
 *
 * @author Amauri
 */
@ManagedBean
public class TimeJogadoresBean {
    
    private TimeDAO time_dao;
    private UsuarioDAO usu_dao;
    private Long codigoTime;
    private List<Usuario> jogadores_selecionados;
    
    public TimeJogadoresBean(){
        this.setTime_dao(new TimeDAO());
        this.setUsu_dao(new UsuarioDAO());
    }
    
    public void mensagem(String msg){
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(msg));
    }
    
    public String salvar(){
        
//        if (this.getTimes_selecionados().size() != 8){
//            this.mensagem("O campeonato deve conter 8 times!");
//            return null;
//        }
        
        Time timePersistir = this.getTime_dao().findById(this.getCodigoTime());
        timePersistir.setPlayers(this.getJogadores_selecionados());
        this.getTime_dao().persistir(timePersistir);
        
        return "time_listar";
    }
    
    public String GerenciarJogadores(Time time){
        this.setCodigoTime(time.getId());
        return "time_jogadores";
    }
    
    public List<Usuario> jogadores_disponiveis(){
        return this.getUsu_dao().listAll();
    }
    
    public TimeDAO getTime_dao() {
        return time_dao;
    }

    public void setTime_dao(TimeDAO time_dao) {
        this.time_dao = time_dao;
    }

    public List<Usuario> getJogadores_selecionados() {
        return jogadores_selecionados;
    }

    public void setJogadores_selecionados(List<Usuario> jogadores_selecionados) {
        this.jogadores_selecionados = jogadores_selecionados;
    }

    public UsuarioDAO getUsu_dao() {
        return usu_dao;
    }

    public void setUsu_dao(UsuarioDAO usu_dao) {
        this.usu_dao = usu_dao;
    }

    public Long getCodigoTime() {
        return codigoTime;
    }

    public void setCodigoTime(Long codigoTime) {
        this.codigoTime = codigoTime;
    }
    
}